import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import { viteMockServe } from 'vite-plugin-mock'
import type { ViteMockOptions } from 'vite-plugin-mock' 

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    viteMockServe({
      mockPath: './src/mock',  // mock文件存放路径
      enable: true,            // 是否启用mock功能
      supportTs: true,         // 开启TypeScript支持
      watchFiles: true,        // 监听mock文件变化
      // 仅在开发环境启用mock
      prodEnabled: false,      // 生产环境不启用
    } as ViteMockOptions)      // 类型断言
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },
  css: {
    preprocessorOptions: {
      scss: {
        // 配置全局 SCSS 变量文件
        additionalData: `@use "@/assets/index" as *;`
      }
    }
  }
})
